package block;

/**
 * Created with IntelliJ IDEA.
 * ClassName: Block
 * Package: block
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 * Date: 2023-11-23
 * Time: 18:06
 */

public class BlockTest {
    public static void main(String[] args) {
        //代码块 没有调用 但是也还是执行了
        //代码没有名 不直接能直接调用 所以是自动执行
        Person person = new Person();
        person.eat();

        System.out.println(person.age);

        System.out.println(Person.info);

    }
}

class Person{

    String name;
    int age;

    static String info = "我是一个人";

    public Person(){}

    public void eat(){
        System.out.println("人吃饭");
    }

    //代码块
    //代码块的修饰 只能使用static修饰 那么就是静态代码块
    //没有使用static就是普通代码块
    //随着对象的创建而执行
    //没创建一个对象 都会执行一次非静态代码块
    {
        System.out.println("非静态代码块1");
        age = 1;
    }

    //没有其他的修饰
    //随着类的加载而执行
    //类的加载只有一次 静态代码块的执行也只有一次
    static {
        System.out.println("静态代码块1");

        System.out.println(info);
    }

    //不像方法 方法什么时候调用 就什么时候执行

}
